package com.lottemall.item.mapper;

import com.lottemall.common.mapper.BaseMapper;
import com.lottemall.item.pojo.Stock;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

public interface StockMapper extends BaseMapper<Stock> {
    /**
     * 定义减库存的sql，这是乐观锁的方式，直接在sql中加条件，但是我怀疑还是会有线程安全问题
     * @param skuId
     * @param num
     * @return
     */
    @Update("update tb_stock set stock = stock - #{num} where sku_id = #{skuId} and stock >= #{num}")
    int decreaseStock(@Param("skuId") Long skuId, @Param("num") Integer num);
}
